/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package clienteSandraParada;

import com.l2fprod.common.swing.plaf.LookAndFeelAddons;
import com.l2fprod.common.swing.plaf.windows.WindowsLookAndFeelAddons;
import javax.swing.UIManager;

/**
 * Clase que tiene como objetivo ser utilizada para los mensajes de acciones y de eventualidades
 * que se deben mostrar en el sistema, de acuerdo a un área de mensajería determinada.
 *
 * @author Franzel
 */
public class Mensajeria {

    /**
     * Método utilizado para obtener un mensaje de acuerdo a alguna
     * acción que se ha realizado en el sistema.
     *
     * @param variable entidad de tipo String correspondiente a la entidad
     * en la que se ha realizado la acción.
     *
     * @param variable accion de tipo String correspondiente a la acción que se
     * ha realizado. Esta debe esta escrita como verbo infinitivo.
     * (Agregar, Modificar, Eliminar, Restaurar)
     *
     * @return variable de tipo String que retorna el mensaje elaborado.
     */
    public static String mensajeDeAccion( String entidad, String accion){
        String articuloMensaje="La";
        Character generoEntidad='a';
        String accionMensaje;
        Character caracter=entidad.charAt(entidad.length()-1);
        String palabra =entidad.split(" ")[0];
        
        if(caracter=='s' || palabra.charAt(palabra.length()-1)=='s'){
            return mensajeMultiplesAcciones(entidad, accion);
        }

        if(generoEntidad !=caracter && caracter!='n'){
            generoEntidad='o';
            articuloMensaje="El";
        }

        accionMensaje= accion.substring(0,accion.length()-1)+'d'+generoEntidad;
        return articuloMensaje+" "+entidad+" ha sido "+accionMensaje+" exitosamente";
    }

    /**
     * Método utilizado para obtener un mensaje de acuerdo a alguna
     * acción que se ha realizado en el sistema. Este a diferencia del método de mensajeDeAcción
     * se utiliza para las acciones de eliminar y restaurar en los casos
     * de que se eligen múltiples objetos de las entidades a eliminar o restaurar.
     *
     * @param variable entidad de tipo String correspondiente a la entidad
     * en la que se ha realizado la acción.
     *
     * @param variable accion de tipo String correspondiente a la acción que se
     * ha realizado. Esta debe esta escrita como verbo infinitivo.
     * (Agregar, Modificar, Eliminar, Restaurar)
     *
     * @return variable de tipo String que retorna el mensaje elaborado.
     */
    private static String mensajeMultiplesAcciones(String entidad, String accion) {
        String articuloMensaje="Los";
        String generoEntidad="os";
        String accionMensaje;
        String terminacionEntidad= entidad.substring(entidad.length()-2, entidad.length());

        if(terminacionEntidad.equals("as")|| entidad.charAt(entidad.length()-1)=='n'){
            generoEntidad="as";
            articuloMensaje="Las";
        }

        accionMensaje= accion.substring(0,accion.length()-1)+'d'+generoEntidad;
        return articuloMensaje+" "+entidad+" han sido "+accionMensaje+" exitosamente";
    }

    /**
     * Método utilizado para obtener un mensaje de acuerdo a alguna
     * eventualidad en la que el usuario debe ingresar un rut valido.
     *
     * @return variable de tipo String que retorna el mensaje elaborado.
     */
    public static String mensajeRutValido(){
       return "Debe ingresar un rut válido";
    }

    /**
     * Método utilizado para obtener un mensaje de acuerdo a alguna
     * eventualidad en la que el usuario debe ingresar otros datos para la
     * entidad especificada, ya que los datos ingresados ya existen en la base
     * de datos del sistema.
     *
     * @return variable de tipo String que retorna el mensaje elaborado.
     */
    public static String mensajeEntidadExistente(String entidad){
        Character terminacionEntidad= entidad.charAt(entidad.length()-1);
        String articulo="El";
        if(terminacionEntidad=='a' || terminacionEntidad=='n'){
            articulo = "La";
            terminacionEntidad='a';
        }
        
        return articulo+" "+entidad+" ya se encuentra registrad"+terminacionEntidad+" en el Sistema";
    }

    /**
     * Método utilizado para obtener un mensaje de acuerdo a alguna
     * eventualidad en la que el usuario debe ingresar todos los campos obligatorios.
     *
     * @return variable de tipo String que retorna el mensaje elaborado.
     */
    public static String mensajeCamposObligatorios(){
        return "Debe ingresar todos los campos obligatorios";
    }

}
